#pragma once

#include <arpa/inet.h>

namespace sockets
{
// 二进制转换为点分十进制 存入buf： 对::inet_ntop的封装
void toIpPort(char* buf, size_t size,
              const struct sockaddr* addr);
void toIp(char* buf, size_t size,
          const struct sockaddr* addr);

// 将字符串ip转换为二进制： 对::inet_pton的封装
void fromIpPort(const char* ip, uint16_t port,
                struct sockaddr_in* addr);
void fromIpPort(const char* ip, uint16_t port,
                struct sockaddr_in6* addr);

//指针类型转换
const struct sockaddr* sockaddr_cast(const struct sockaddr_in* addr);
const struct sockaddr_in* sockaddr_in_cast(const struct sockaddr* addr);
const struct sockaddr_in6* sockaddr_in6_cast(const struct sockaddr* addr);
}

